css: Do inconsistent checked states right
authorBenjamin Otte <otte@redhat.com>
Thu, 14 Aug 2014 03:14:36 +0000 (05:14 +0200)
committerBenjamin Otte <otte@redhat.com>
Sat, 16 Aug 2014 14:34:14 +0000 (16:34 +0200)
In HTML5, both pseudoclasses apply. So we do the same thing in our
widgets.

https://bugzilla.gnome.org/show_bug.cgi?id=733967

gtk/gtkcellrenderertoggle.c
gtk/gtkcheckbutton.c
gtk/gtkcheckmenuitem.c
gtk/gtkradiobutton.c
gtk/gtktogglebutton.c

index 64c01f272bc547494574c052e401b3506a96085d..282d8f060ad03e7bde905ca57d3d2efbabb6c5d9 100644 (file)
@@ -390,7 +390,8 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer      *cell,
 
   if (priv->inconsistent)
     state |= GTK_STATE_FLAG_INCONSISTENT;
-  else if (priv->active)
+  
+  if (priv->active)
     state |= GTK_STATE_FLAG_CHECKED;
 
   cairo_save (cr);
index f395dcc7c4e7fa6267f33d3f28056fe1a1c1cc44..89ce961d1ea672772de8622f19051544b74de1db 100644 (file)
@@ -566,7 +566,8 @@ gtk_real_check_button_draw_indicator (GtkCheckButton *check_button,
 
   if (gtk_toggle_button_get_inconsistent (toggle_button))
     state |= GTK_STATE_FLAG_INCONSISTENT;
-  else if (gtk_toggle_button_get_active (toggle_button))
+  
+  if (gtk_toggle_button_get_active (toggle_button))
     state |= GTK_STATE_FLAG_CHECKED;
 
   if (button->priv->activate_timeout || (button->priv->button_down && button->priv->in_button))
index a32651582acc6fd938f11fbe0aea708aad4bc4c8..9e61306c8c1d5605503eb267842a40f2462f8f51 100644 (file)
@@ -575,7 +575,7 @@ gtk_real_check_menu_item_draw_indicator (GtkCheckMenuItem *check_menu_item,
 
       if (priv->inconsistent)
         state |= GTK_STATE_FLAG_INCONSISTENT;
-      else if (priv->active)
+      if (priv->active)
         state |= GTK_STATE_FLAG_CHECKED;
 
       gtk_style_context_set_state (context, state);
index abf4e3cdddb324de1531f3e933d9f903f69d60e0..6d3dec3a241fa32fb55ae36225674f0e020707bb 100644 (file)
@@ -873,7 +873,8 @@ gtk_radio_button_draw_indicator (GtkCheckButton *check_button,
 
   if (gtk_toggle_button_get_inconsistent (toggle_button))
     state |= GTK_STATE_FLAG_INCONSISTENT;
-  else if (gtk_toggle_button_get_active (toggle_button))
+  
+  if (gtk_toggle_button_get_active (toggle_button))
     state |= GTK_STATE_FLAG_CHECKED;
 
   if (button->priv->activate_timeout ||
index 193021b5296aa089795863b94f1b966b4bbf1c11..1a0580e4889eec249378601e1f8103df3cde23c4 100644 (file)
@@ -661,7 +661,8 @@ gtk_toggle_button_update_state (GtkButton *button)
 
   if (priv->inconsistent)
     new_state |= GTK_STATE_FLAG_INCONSISTENT;
-  else if (priv->active)
+  
+  if (priv->active)
     new_state |= GTK_STATE_FLAG_CHECKED;
 
   if (button->priv->in_button && button->priv->button_down)